# GNU social 2.0.2

Guía de instalación y configuración de GNU social.

## Instalación

Descargar y preparar GNU social:

    sudo su
    cd /var/lib
    git clone https://notabug.org/gnusocialjp/gnusocial.git
    chmod 750 gnusocial
    cd gnusocial
    mkdir -p file/avatar file/sessions run
    make -j"$(nproc)" translations
    chown -R nobody:nogroup /var/lib/gnusocial
    mkdir -p /var/merecat/www/htdocs
    ln -s /var/lib/gnusocial/public /var/merecat/www/htdocs/gnusocial
    chown nobody:nogroup -R /var/merecat/www/htdocs
    exit

Crear una base de datos y un usuario asignado:

    mysql -u root -p
    CREATE DATABASE gnusocial CHARACTER SET = 'utf8mb4' COLLATE = 'utf8mb4_general_ci';
    CREATE USER 'gnusersocial'@'localhost' IDENTIFIED BY 'password';
    GRANT ALL PRIVILEGES ON gnusocial.* TO 'gnusersocial'@'localhost';
    FLUSH PRIVILEGES;

Comenzar la instalación:

* <http://localhost/gnusocial/install.php>

Tipos de instancia:

* **Community**: solo permite el registro de usuarios por invitación y la instancia es federada.
* **Public**: el registro de usuarios es libre y la instancia es federada.
* **Single User**: registra un único usuario y la instancia es federada.
* **Private**: solo permite el registro de usuarios por invitación y la instancia no es federada.

## Configuración

Listar todas las opciones de configuración:

    php scripts/setconfig.php -a

> El archivo de configuración de GNU social se encuentra en `config.php`.

### site

Opciones de configuración del sitio web:

| Opción              | Valor por defecto     | Descripción |
| ------------------- | --------------------- | ----------- |
| `name`              | ---- (obligatorio)    | Nombre de la instancia. |
| `server`            | ---- (obligatorio)    | Dominio o dirección IP de la instancia. |
| `path`              | '' (raíz)             | Ruta relativa de la carpeta de GNU social si se instaló en una subcarpeta. |
| `fancy`             | false (deshabilitado) | Habilita las URLs amigables (requiere reescritura de URLs). |
| `logfile`           | ---- (syslog)         | Ruta del archivo de registros. |
| `logdebug`          | false (deshabilitado) | Habilita los registros en modo depuración. |
| `locale_path`       | /gnusocial/locale/    | Ruta de la carpeta de los archivos de traducción. |
| `language`          | en                    | Idioma predeterminado de la instancia (configurable por usuario). |
| `languages`         | ----                  | Array de idiomas soportados en la instancia. |
| `theme`             | neo-quitter           | Tema visual de la instancia. |
| `email`             | ---- (obligatorio)    | Email de contacto de la instancia. |
| `broughtby`         | ----                  | Nombre de la organización o persona que provee la instancia y que será mostrado en el footer del sitio web. |
| `broughtbyurl`      | ----                  | URL de contacto de la organización o persona que provee la instancia. |
| `timezone`          | UTC                   | Zona horario predeterminada para mostrar la hora de los mensajes (configurable por usuario). |
| `closed`            | false (deshabilitado) | Deshabilita el registro de usuarios de la instancia. |
| `inviteonly`        | false (deshabilitado) | Permite el registro de usuarios de la instancia si solo fueron invitados por un usuario existente. |
| `private`           | false (deshabilitado) | Permite el consumo de contenido de la instancia únicamente a usuarios registros. |
| `notice`            | ----                  | Mensaje informativo que será mostrado en todas las páginas de la instancia. |
| `logo`              | ---- (el del tema)    | URL del logo de la instancia (reemplaza el del tema). |
| `ssllogo`           | ---- (el del tema)    | URL del logo de la instancia en modo seguro (https). |
| `ssl`               | never                 | Utilizar siempre https (always), no utilizar https (never) o utiliza https en páginas con información sensible (sometimes). |
| `sslproxy`          | false                 | Si utiliza un dominio o una dirección IP diferente en modo seguro (https). |
| `sslserver`         | ----                  | Dominio o dirección IP de la instancia en modo seguro (https). |
| `dupelimit`         | 60                    | Tiempo mínimo en segundos para que un usuario pueda publicar lo mismo 2 veces. |
| `textlimit`         | 1000                  | Número máximo de caracteres para los textos de la instancia (avisos, mensajes, biografías de perfiles y descripción de grupos). |
| `favicon`           | /favicon.ico          | Ruta desde la raíz del favicon respecto a la carpeta `public/`. |
| `x-static-delivery` | ----                  | Envía directamente contenido estático a los usuarios sin pasar por el servidor web. `X-Sendfile` (para apache y otros) y `X-Accel-Redirect` (para nginx). |

### db

Opciones de configuración de la base de datos:

| Opción           | Valor por defecto     | Descripción |
| ---------------- | --------------------- | ----------- |
| `database`       | ---- (obligatorio)    | DSN de la base de datos de GNU social. |
| `ini_yourdbname` | ----                  | Nombre real de la base de datos si no fue nombrado como `statusnet`. |
| `type`           | ---- (mysql o pgsql)  | Tipo de base de datos (utilizado para optimizaciones del programa). |
| `mirror`         | ----                  | Array de DSNs de bases de datos espejo para GNU social. |
| `utf8`           | true (habilitado)     | Utiliza UTF-8 para el cliente de la base de datos. |
| `schemacheck`    | runtime               | Permite a los plugins verificar la base de datos para modificarla en tiempo de ejecución por petición (runtime) o de manera manual (script). |
| `foreign_keys`   | false (deshabilitado) | Habilita las restricciones de las llaves foráneas. |

### syslog

Opciones de configuración de los registros cuando se utiliza syslog:

| Opción     | Valor por defecto | Descripción |
| ---------- | ----------------- | ----------- |
| `appname`  | statusnet         | Nombre del programa que registra el mensaje. |
| `facility` | LOG\_USER         | Tipo de programa que registra el mensaje. |

### queue

Existen 2 tipos de mecanismos para la cola de tareas:

* Plugin OpportunisticQM:
  * Habilitado por defecto.
  * No requiere acceso a la terminal.
  * No se preocupa por procesos de PHP de larga duración.
  * Para instancias con poco tráfico.
* Script queuedaemon:
  * Requiere acceso a la terminal.
  * Mayor rendimiento para instancias de gran volumen.

Opciones de configuración de la cola de tareas en segundo plano:

| Opción                  | Valor por defecto                      | Descripción |
| ----------------------- | -------------------------------------- | ----------- |
| `enabled`               | true (habilitado)                      | Habilita la cola o pila de tareas en segundo plano para tareas que requieran mucho tiempo. |
| `daemon`                | false (deshabilitado)                  | Habilita el mecanismo de script queuedaemon. |
| `subsystem`             | db                                     | Tipo de servidor de cola de tareas. `db`, `stomp` y `redis`. |
| `threads`               | ---- (nproc en tipo UNIX y 1 en otros) | Número de procesos a utilizar. |
| `items_to_handle`       | ---- (ilimitado)                       | Número de elementos a manejar antes de finalizar el proceso de un demonio. |
| `stomp_server`          | ----                                   | Servidor stomp si se utiliza `stomp` como tipo de servidor de cola de tareas. |
| `queue_basename`        | /queue/statusnet/                      | Nombre raíz que utilizará el servidor stomp en la cola de tareas. |
| `stomp_username`        | ----                                   | Usuario para conectarse al servidor stomp. |
| `stomp_password`        | ----                                   | Contraseña de acceso para conectarse al servidor stomp. |
| `stomp_persistent`      | true (habilitado)                      | Mantener los elementos en la cola de tareas al reiniciar el servidor stomp. Deshabilitarlo si no se utiliza Apache ActiveMQ. |
| `stomp_transactions`    | true (habilitado)                      | Habilita las transacciones en el servidor stomp para mejorar la detección de errores. Deshabilitarlo si no se utiliza Apache ActiveMQ. |
| `stomp_acks`            | true (habilitado)                      | Recibir acuses de recibido cuando el proceso de la cola de tareas funciona correctamente. Deshabilitarlo si no se utiliza Apache ActiveMQ. |
| `softlimit`             | 90                                     | Porcentaje de memoria máxima a utilizar. |
| `inboxes`               | true (habilitado)                      | Utiliza la cola de tareas para enviar mensajes en la bandeja de entrada de los usuarios. |
| `breakout`              | ----                                   | Un array de colas de tareas para ejecutarlos en procesos separados en el servidor stomp. |
| `max_retries`           | 10                                     | Número máximo de intentos fallidos antes de eliminar los mensajes en el servidor stomp. |
| `dead_letter_dir`       | false (deshabilitado)                  | Directorio que almacena datos sobre eventos fallidos del servidor stomp. |
| `stomp_no_transactions` | false (deshabilitado)                  | Deshabilita las transacciones en el servidor stomp. |
| `stomp_no_acks`         | false (deshabilitado)                  | Deshabilita los acuses de recibido en el servidor stomp. |

### license

Opciones de configuración de la licencia para los mensajes informativos de la instancia:

| Opción     | Valor por defecto                              | Descripción |
| ---------- | ---------------------------------------------- | ----------- |
| `type`     | cc                                             | Tipo de licencia. `cc` (Creative Commons), `allrightsreserved` (todo los derechos reservados) y `private` (información privada y confidencial). |
| `owner`    | ----                                           | Para `allrightsreserved` o `private`, titular de los derechos de autor. |
| `url`      | <https://creativecommons.org/licenses/by/3.0/> | URL de la licencia. |
| `title`    | Creative Commons Attribution 3.0               | Título de la licencia. |
| `image`    | /theme/licenses/cc\_by\_3.0\_80x15.png         | URL de la imagen o logo de la licencia. |

### mail

Opciones de configuración del mecanismos de envío de emails:

| Opción           | Valor por defecto    | Descripción |
| ---------------- | -------------------- | ----------- |
| `backend`        | mail                 | Tipo de mecanismo de envío de emails con [PEAR](https://pear.php.net/manual/en/package.mail.mail.factory.php). `mail`, `sendmail` y `smtp`. |
| `params`         | ----                 | Un array de parámetros enviados al mecanismo de envío de emails. |
| `templates_path` | /gnusocial/mail-src/ | Ruta de la carpeta de temas para los mensajes de email. |

### nickname

Opciones de configuración de los nombres de usuarios:

| Opción      | Valor por defecto | Descripción |
| ----------- | ----------------- | ----------- |
| `blacklist` | ----              | Un array de nombres de usuarios que no pueden ser registrados. |
| `featured`  | ----              | Un array de nombres de usuarios destacados dentro de la instancia. |

### avatar

Opciones de configuración de los avatares de los usuarios:

| Opción    | Valor por defecto                       | Descripción |
| --------- | --------------------------------------- | ----------- |
| `dir`     | /gnusocial/file/avatar/                 | Ruta de la carpeta de los avatares de los usuarios. |
| `path`    | /avatar/                                | Ruta de la URL de los avatares de los usuarios. |
| `maxsize` | 300                                     | Tamaño máximo en kilobytes de subida para los avatares. |
| `server`  | ----                                    | Servidor si los avatares de los usuarios se almacenan en otro lugar. |
| `ssl`     | ---- (utiliza `$config['site']['ssl']`) | Acceder a los avatares de los usuarios utilizando https. |

### public

Opciones de configuración de la línea pública de la instancia:

| Opción       | Valor por defecto     | Descripción |
| ------------ | --------------------- | ----------- |
| `localonly`  | false (deshabilitado) | Mostrar solo los mensajes publicados por los usuarios registrados en la línea pública de la instancia. |
| `blacklist`  | ----                  | Un array de IDs de usuarios registrados para ocultar sus publicaciones en la línea pública de la instancia. |
| `autosource` | ----                  | Un array de fuentes (URLs) de publicaciones a ocultar en la línea pública de la instancia.  |

### theme

Opciones de configuración de los temas visuales de la instancia:

| Opción      | Valor por defecto                             | Descripción |
| ----------- | --------------------------------------------- | ----------- |
| `server`    | ----                                          | Servidor si los archivos de los temas de la instancia se encuentran en otro lugar. |
| `dir`       | /gnusocial/public/theme/                      | Ruta de la carpeta de los archivos de los temas de la instancia. |
| `path`      | /theme/                                       | Ruta de la URL de los archivos de los temas de la instancia. |
| `ssl`       | ---- (utiliza `$config['site']['ssl']`)       | Acceder a los elementos del tema de la instancia utilizando https. |
| `sslserver` | ---- (utiliza `$config['site']['sslserver']`) | Si se utiliza una dirección IP o dominio diferente en modo seguro (https) para los archivos de los temas de la instancia. |
| `sslpath`   | ----                                          | Ruta de la URL a utilizar para los archivos de los temas de la instancia en el servidor https. |

### javascript

Opciones de configuración de los archivos de javascript de la instancia:

| Opción       | Valor por defecto                             | Descripción |
| ------------ | --------------------------------------------- | ----------- |
| `server`     | ----                                          | Servidor si los archivos de javascript de la instancia se encuentran en otro lugar. |
| `path`       | /js/                                          | Ruta de la URL de los archivos de javascript de la instancia. |
| `ssl`        | ---- (utiliza `$config['site']['ssl']`)       | Acceder a los archivos de javascript utilizando https. |
| `sslserver`  | ---- (utiliza `$config['site']['sslserver']`) | Si se utiliza una dirección IP o dominio diferente en modo seguro (https) para los archivos de javascript de la instancia. |
| `sslpath`    | ----                                          | Ruta de la URL a utilizar para los archivos de javascript de la instancia en el servidor https. |
| `bustframes` | true (habilitado)                             | No utiliza [framesets](https://www.w3schools.com/tags/tag_frameset.asp) de HTML (iframe) en la instancia. |

### xmpp

Opciones de configuración del subsistema de XMPP:

| Opción       | Valor por defecto     | Descripción |
| ------------ | --------------------- | ----------- |
| `enabled`    | false (deshabilitado) | Habilita el envío de mensajes por XMPP. |
| `server`     | ----                  | Dominio o dirección IP del servidor XMPP. |
| `port`       | 5222                  | Puerto de conexión al servidor XMPP. |
| `user`       | ----                  | Usuario para conectarse al servidor XMPP. |
| `password`   | ----                  | Contraseña de acceso para conectarse al servidor XMPP. |
| `resource`   | ----                  | Nombre o identificador único que representará la conexión con el servidor XMPP. |
| `host`       | ----                  | Dominio o dirección IP del servidor XMPP. |
| `encryption` | true (habilitado)     | Cifrar la conexión entre GNU social y el servidor XMPP. |
| `debug`      | false (deshabilitado) | Habilita el envío de mensajes en modo depuración. |
| `public`     | ----                  | Un array de identificadores Jabber (JID) para enviar todas las notificaciones. |

### invite

Opciones de configuración de las invitaciones:

| Opción    | Valor por defecto | Descripción |
| --------- | ----------------- | ----------- |
| `enabled` | true (habilitado) | Permite a los usuarios enviar invitaciones de registro a la instancia. |

### tag

Opciones de configuración de las etiquetas:

| Opción    | Valor por defecto | Descripción |
| --------- | ----------------- | ----------- |
| `dropoff` | 864000            | Intervalo en segundos para actualizar la lista de etiquetas. |

### popular

Opciones de configuración de la página de "popular":

| Opción    | Valor por defecto | Descripción |
| --------- | ----------------- | ----------- |
| `dropoff` | 864000            | Intervalo en segundos para actualizar la página de "popular". |

### daemon

Opciones de configuración de los procesos de los demonios:

| Opción   | Valor por defecto     | Descripción |
| -------- | --------------------- | ----------- |
| `piddir` | /tmp/                 | Ruta de la carpeta para almacenar los PIDs de los procesos de los demonios. |
| `user`   | false (deshabilitado) | Cambiar el usuario que ejecuta los procesos de los demonios. |
| `group`  | false (deshabilitado) | Cambiar el grupo que ejecuta los procesos de los demonios. |

### emailpost

Opciones de configuración de las notificaciones por email:

| Opción    | Valor por defecto     | Descripción |
| --------- | --------------------- | ----------- |
| `enabled` | false (deshabilitado) | Habilita el envío de notificaciones por email. |

### sms

Opciones de configuración de las notificaciones por SMS:

| Opción    | Valor por defecto     | Descripción |
| --------- | --------------------- | ----------- |
| `enabled` | false (deshabilitado) | Habilita el envío de notificaciones por SMS. |

### integration

Opciones de configuración de las integraciones con otros sistemas:

| Opción   | Valor por defecto | Descripción |
| -------- | ----------------- | ----------- |
| `taguri` | /tag/             | Ruta de la URL de las etiquetas (tags). |

### inboxes

Opciones de configuración de la bandeja de entrada:

| Opción    | Valor por defecto | Descripción |
| --------- | ----------------- | ----------- |
| `enabled` | true (habilitado) | Habilita la bandeja de entrada. |

### throttle

Opciones de configuración del limitador de publicaciones:

| Opción     | Valor por defecto     | Descripción |
| ---------- | --------------------- | ----------- |
| `enabled`  | false (deshabilitado) | Habilita el limitador de publicaciones. |
| `count`    | 20                    | Número de publicaciones que se permite publicar en un cierto intervalo de segundos. |
| `timespan` | 600                   | Intervalo de segundos que se permite publicar en un cierto número de publicaciones. |

### profile

Opciones de configuración del perfil del usuario:

| Opción         | Valor por defecto                             | Descripción |
| -------------- | --------------------------------------------- | ----------- |
| `biolimit`     | ---- (utiliza `$config['site']['textlimit']`) | Número máximo de caracteres para la biografía del perfil del usuario. |
| `changenick`   | false (deshabilitado)                         | Permite a los usuarios modificar su nombre de usuario. |
| `allowprivate` | false (deshabilitado)                         | Permite a los usuarios configurar su perfil como privado. |
| `backup`       | false (deshabilitado)                         | Permite a los usuarios realizar copias de seguridad de su perfil. |
| `restore`      | false (deshabilitado)                         | Permite a los usuarios restaurar su perfil desde una copia de seguridad. |
| `delete`       | false (deshabilitado)                         | Permite a los usuarios eliminar su perfil. |
| `move`         | true (habilitado)                             | Permite a los usuarios migrar su cuenta de perfil a otro servidor. |

### newuser

Opciones de configuración para nuevos usuarios:

| Opción    | Valor por defecto | Descripción |
| --------- | ----------------- | ----------- |
| `default` | ----              | Nombre de usuario a seguir de manera automática. |
| `welcome` | ----              | Nombre de usuario que envía mensajes de bienvenida a los nuevos usuarios. |

### attachments

Opciones de configuración de los archivos subidos por los usuarios de la instancia:

| Opción          | Valor por defecto                             | Descripción |
| --------------- | --------------------------------------------- | ----------- |
| `supported`     | ----                                          | Un array de mime types soportados en la instancia. |
| `uploads`       | true (habilitado)                             | Habilita la subida de archivos dentro de las publicaciones. |
| `extblacklist`  | ----                                          | Un array de extensiones de archivos no permitidos o renombrados. |
| `process_links` | true (habilitado)                             | Mantener la información de los archivos en las redirecciones. |
| `file_quota`    | ---- (utiliza `upload_max_filesize` de PHP)   | Tamaño máximo en bytes de subida de un solo archivo. |
| `user_quota`    | 50000000 (~ 50 MB)                            | Cuota total en bytes que un usuario puede almacenar en el servidor. |
| `monthly_quota` | 15000000 (~ 15 MB)                            | Cuota máxima por mes en bytes que un usuario puede almacenar en el servidor. |
| `dir`           | /gnusocial/file/                              | Ruta de la carpeta de los archivos subidos por los usuarios de la instancia. |
| `server`        | ----                                          | Servidor si los archivos subidos por los usuarios se encuentran en otro lugar. |
| `path`          | /file/                                        | Ruta de la URL de los archivos subidos por los usuarios de la instancia. |
| `ssl`           | ---- (utiliza `$config['site']['ssl']`)       | Acceder a los archivos subidos por los usuarios utilizando https. |
| `sslserver`     | ---- (utiliza `$config['site']['sslserver']`) | Si se utiliza una dirección IP o dominio diferente en modo seguro (https) para los archivos subidos por los usuarios. |
| `sslpath`       | ----                                          | Ruta de la URL a utilizar para los archivos subidos por los usuarios en el servidor https. |
| `show_thumbs`   | true (habilitado)                             | Mostrar previsualización de imágenes y vídeos externos. |
| `show_html`     | false (deshabilitado)                         | Mostrar archivos HTML adjuntos o HTML incrustado. |
| `filename_base` | hash                                          | Nombrar los archivos subidos por `hash` aleatorio o utilizar el nombre real del archivo (`upload`). |
| `memory_limit`  | 1024M                                         | Cantidad de memoria máxima que un script de PHP pude utilizar para manejar imágenes. |
| `prefer_remote` | ----                                          | Redirigir los archivos subidos por los usuarios con la primera URL conocida. |

Configurar las siguientes opciones en el archivo `php.ini`:

* `upload_max_filesize`: Tamaño máximo de subida de un solo archivo.
* `max_file_uploads`: Número máximo de archivos que se pueden subir de manera simultanea.
* `post_max_size`: Tamaño máximo de datos permitidos con el método POST.
* `memory_limit`: Cantidad de memoria máxima que un script de PHP puede utilizar.
* `max_execution_time`: Tiempo máximo en segundos que un script de PHP puede durar en ejecutarse.
* `max_input_time`: Tiempo máximo en segundos que un script de PHP puede recibir información.
* `upload_tmp_dir`: Ruta de la carpeta temporal para almacenar archivos de subida.
* `output_buffering`: Tamaño máximo en bytes del buffer de salida de un script de PHP.

### thumbnail

Opciones de configuración de la previsualización de los archivos subidos por los usuarios:

| Opción     | Valor por defecto      | Descripción |
| ---------- | ---------------------- | ----------- |
| `dir`      | /gnusocial/file/thumb/ | Ruta de la carpeta de la previsualización de los archivos subidos por los usuarios. |
| `path`     | ----                   | Ruta de la URL de la previsualización de los archivos subidos por los usuarios. |
| `server`   | ----                   | Servidor si la previsualización de los archivos subidos por los usuarios se encuentran en otro lugar. |
| `crop`     | false (deshabilitado)  | Recortar el tamaño de la previsualización sin conservar la relación de aspecto. |
| `maxsize`  | 1000                   | Limite en píxeles para no generar un marco bordado sobre la previsualización. |
| `width`    | 450                    | Ancho máximo en píxeles de la previsualización. |
| `height`   | 600                    | Alto máximo en píxeles de la previsualización. |
| `upscale`  | false (deshabilitado)  | Redimensionar la previsualización de los archivos al ancho y alto definidos. |
| `animated` | false (deshabilitado)  | Generar previsualizaciones animadas para los archivos de imagen animados. |

### group

Opciones de configuración de los grupos:

| Opción       | Valor por defecto                             | Descripción |
| ------------ | --------------------------------------------- | ----------- |
| `maxaliases` | 3                                             | Número máximo de alias que puede tener un grupo. |
| `desclimit`  | ---- (utiliza `$config['site']['textlimit']`) | Número máximo de caracteres para la descripción del grupo. |
| `addtag`     | true (habilitado)                             | Agregar una etiqueta a cada publicación del grupo con el apodo del grupo. |

### search

Opciones de configuración de las búsquedas:

| Opción | Valor por defecto | Descripción |
| ------ | ----------------- | ----------- |
| `type` | fulltext          | Tipo de búsqueda por texto completo (`fulltext`) o utilizando la sentencia LIKE de SQL (`like`). Ignorado si PostgreSQL o Sphinx están habilitados. |

### sessions

Opciones de configuración de las sesiones:

| Opción   | Valor por defecto     | Descripción |
| -------- | --------------------- | ----------- |
| `handle` | false (deshabilitado) | Habilita el mecanismo de sesiones desde la base de datos. |
| `debug`  | false (deshabilitado) | Habilita las sesiones en modo depuración. |

### ping

Opciones de configuración de las notificaciones de actualización a terceros:

| Opción   | Valor por defecto | Descripción |
| -------- | ----------------- | ----------- |
| `notify` | ----              | Un array de URLs de servidores de terceros para notificar actualizaciones de la instancia. |

### notice

Opciones de configuración de las publicaciones:

| Opción         | Valor por defecto                             | Descripción |
| -------------- | --------------------------------------------- | ----------- |
| `contentlimit` | ---- (utiliza `$config['site']['textlimit']`) | Número máximo de caracteres para las publicaciones. |
| `allowprivate` | false (deshabilitado)                         | Permite a los usuarios publicar de manera privada. |
| `defaultscope` | ---- (utiliza `$config['site']['private']`)   | Solo los usuarios registrados pueden ver las publicaciones de la instancia. |

### message

Opciones de configuración de envío de mensajes por XMPP:

| Opción         | Valor por defecto                             | Descripción |
| -------------- | --------------------------------------------- | ----------- |
| `contentlimit` | ---- (utiliza `$config['site']['textlimit']`) | Número máximo de caracteres para los mensajes. |

### logincommand

Opciones de configuración del comando de inicio de sesión:

| Opción     | Valor por defecto | Descripción |
| ---------- | ----------------- | ----------- |
| `disabled` | true (habilitado) | Deshabilita el envío del enlace de inicio de sesión utilizando la palabra "login" para los canales XMPP o SMS. |

### singleuser

Opciones de configuración de un solo usuario:

| Opción     | Valor por defecto            | Descripción |
| ---------- | ---------------------------- | ----------- |
| `enabled`  | false (deshabilitado)        | Permite un solo usuario a la instancia. |
| `nickname` | ---- (usuario administrador) | Nombre del usuario único. |

### robotstxt

Opciones de configuración del robots.txt de la instancia:

| Opción       | Valor por defecto                                  | Descripción |
| ------------ | -------------------------------------------------- | ----------- |
| `crawldelay` | 0                                                  | Tiempo de espera en segundos para que el analizador acceda a cada página de la instancia. |
| `disallow`   | ['main', 'search', 'message', 'settings', 'admin'] | Un array de carpetas para no seguir en el robots.txt. |

### api

Opciones de configuración de la API:

| Opción  | Valor por defecto | Descripción |
| ------- | ----------------- | ----------- |
| `realm` | ----              | Tipo de autenticación de la API de GNU social. |

### nofollow

Opciones de configuración del atributo `rel="nofollow"` de los enlaces de la instancia:

| Opción        | Valor por defecto | Descripción |
| ------------- | ----------------- | ----------- |
| `subscribers` | true (habilitado) | No seguir enlaces de los suscriptores de la página de un perfil o usuario. |
| `members`     | true (habilitado) | No seguir enlaces de los integrantes de la página de un grupo. |
| `peopletag`   | true (habilitado) | No seguir enlaces de usuarios etiquetados dentro de una publicación en la página de etiquetas de un usuario. |
| `external`    | sometimes         | No seguir enlaces externos (`always`), seguir enlaces externos (`never`) o no seguir enlaces externos en la página de perfil, publicaciones y favoritos (`sometimes`). |

### url

Opciones de configuración de las URLs de la instancia:

| Opción            | Valor por defecto | Descripción |
| ----------------- | ----------------- | ----------- |
| `shortener`       | internal          | Utilizar el servicio de acortamiento de URLs por defecto (`internal`) o configurable por usuario (`individually`). |
| `maxurllength`    | 100               | Número máximo de caracteres para recortar una URL (configurable por usuario). |
| `maxnoticelength` | -1                | Recortar la URL de las publicaciones si supera el limite de caracteres (configurable por usuario). |

### router

Opciones de configuración del enrutador de URLs a código:

| Opción  | Valor por defecto | Descripción |
| ------- | ----------------- | ----------- |
| `cache` | true (habilitado) | Almacenar en caché el enrutador de URLs a código. |

### http

Opciones de configuración del cliente HTTP:

| Opción              | Valor por defecto     | Descripción |
| ------------------- | --------------------- | ----------- |
| `ssl_cafile`        | false (deshabilitado) | Ruta del certificado SSL para el cliente HTTP. |
| `curl`              | false (deshabilitado) | Utilizar el cliente cURL para realizar peticiones HTTP. |
| `proxy_host`        | ----                  | Dominio o dirección IP si el cliente HTTP utilizará un servidor proxy HTTP. |
| `proxy_port`        | ----                  | Puerto de conexión al servidor proxy HTTP. |
| `proxy_user`        | ----                  | Usuario para conectarse al servidor proxy HTTP. |
| `proxy_password`    | ----                  | Contraseña de acceso para conectarse al servidor proxy HTTP. |
| `proxy_auth_scheme` | ----                  | Esquema de autenticación para conectarse al servidor proxy HTTP. |

### plugins

Opciones de configuración de los plugins de la instancia:

| Opción        | Valor por defecto                             | Descripción |
| ------------- | --------------------------------------------- | ----------- |
| `default`     | ----                                          | Un array de plugins habilitados por defecto. |
| `locale_path` | /gnusocial/public/plugins/                    | Ruta de la carpeta de los archivos de los plugins. |
| `server`      | ----                                          | Servidor si los archivos de los plugins de la instancia se encuentran en otro lugar. |
| `path`        | /plugins/                                     | Ruta de la URL de los archivos de los plugins de la instancia. |
| `sslserver`   | ---- (utiliza `$config['site']['sslserver']`) | Si se utiliza una dirección IP o dominio diferente en modo seguro (https) para los archivos de los plugins de la instancia. |
| `sslpath`     | ----                                          | Ruta de la URL a utilizar para los archivos de los plugins de la instancia en el servidor https. |

### performance

Opciones de configuración de optimizaciones:

| Opción | Valor por defecto     | Descripción |
| ------ | --------------------- | ----------- |
| `high` | false (deshabilitado) | Habilita el modo de alto rendimiento (deshabilita código de alta demanda en la instancia). |

### oldschool

Opciones de configuración antiguas de GNU social:

| Opción    | Valor por defecto     | Descripción |
| --------- | --------------------- | ----------- |
| `enabled` | false (deshabilitado) | Habilita las opciones antiguas de GNU social para usuarios. |

## Referencias

* [GNU social - Sitio web oficial.](https://gnusocial.rocks)
* [GNU social 2.0.x - Repositorio oficial.](https://notabug.org/diogo/gnu-social)
* [GNU social 2.0.x - Guía de instalación.](https://notabug.org/diogo/gnu-social/src/master/INSTALL.md)
* [GNU social 2.0.x - Guía de configuración.](https://notabug.org/diogo/gnu-social/src/master/DOCUMENTATION/SYSTEM_ADMINISTRATORS/CONFIGURE.md)
* [GNU social 2.0.x por GNU social JP - Repositorio oficial.](https://notabug.org/gnusocialjp/gnusocial)
* [GNU social 2.0.x por GNU social JP - Guía de instalación.](https://notabug.org/gnusocialjp/gnusocial/src/main/INSTALL.md)
* [GNU social 2.0.x por GNU social JP - Guía de configuración.](https://notabug.org/gnusocialjp/gnusocial/src/main/DOCUMENTATION/SYSTEM_ADMINISTRATORS/CONFIGURE.md)
* [PHP - openlog](https://www.php.net/manual/es/function.openlog.php)
* [PHP - Dificultades comunes.](https://www.php.net/manual/es/features.file-upload.common-pitfalls.php)
* [Nextcloud - Uploading big files > 512MB.](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html)
* [PHP - Descripción de las directivas del núcleo de php.ini.](https://www.php.net/manual/es/ini.core.php)
* [PHP - Configuración en tiempo de ejecución.](https://www.php.net/manual/es/info.configuration.php)
* [CopyProgramming - Session ID Cannot Be Changed After Headers Are Sent - Cautionary Note Regarding session_id().](https://copyprogramming.com/howto/warning-session-id-session-id-cannot-be-changed-after-headers-have-already-been-sent)
* [PHP - Configuración en tiempo de ejecución de la extensión zlib.](https://www.php.net/manual/es/zlib.configuration.php)
